package com.bytz.modules.cms.domain;

import com.bytz.modules.cms.domain.model.pay.PayInBase;
import com.bytz.modules.cms.domain.model.pay.PayOut;
import com.bytz.modules.cms.order.entity.OrderPay;
import com.bytz.modules.cms.order.entity.OrderPayDetail;
import com.bytz.modules.cms.order.model.PayNotifyResult;

public interface PayProcessor<PIN extends PayInBase> {

    /**
     * 准备支付
     */
    PayOut prepare(PIN payIn);

    /**
     * 通知
     */
    void notify(PayNotifyResult payNotifyResult, OrderPay orderPay, OrderPayDetail orderPayDetail);
}
